The present invention relates to remote control systems and particularly to a system and method for reducing color related information.
Remote control programs are a special category of communication applications. They go beyond just connecting a computer with another computer to actually taking control of it. By connecting through phone lines and modems or through LAN/WAN connections, these programs can put all the resources of one data processing system (e.g. a personal computer or a workstation), usually called the target, under the complete control of another data processing system (e.g. a personal computer or a workstation, connected with a LAN/WAN), usually called the controller. The controller screen duplicates the target one. The keyboard of the controller can enter characters directly on the target data processing system;
the mouse of the controller can move the mouse pointer on the target screen. The controller screen constantly receives data from the target data processing system screen. Likewise, the keyboard of the controller sends data to the target data processing system every time a key is hit. For all practical purposes, the controller user may as well be sitting in front of the target data processing system.
This kind of remote control software can be useful in a number of circumstances. Just as an example an office personal computer system can be controlled and operated from home personal computers. If the office PC is left connected to a modem, the control can be taken from the home PC and all the resources of the target PC can be controlled and used remotely. A more specific use is to dial in (via modem) to a network-connected PC at the office, log in, and run network applications or update shared files on the network.
The bottleneck caused by modems can have a significant effect on the speed of remote control operations. To boost performances, remote control programs try to reduce and minimize the amount of data that needs to be transmitted over the communication lines (LAN/WAN or telephone cables). The refresh of the video image on the display screen of the target PC, which should be duplicated on the controller PC, constitutes the main factor in the transmission speed, due to the large quantity of information which has to be transferred. In the past, remote control programs worked by sending and refreshing the entire image of the target PC screen to the remote PC every fraction of a second. The constant rate at which the screen images were sent to the controller PC was called the screen refresh rate. The controller PC screen accurately reflected the target PC screen as changes at the target PC would be included in the next screen refresh. This approach was, of course, not very satisfactory in terms of speed, because of the enormous amount of data to be transmitted at each refresh.
Often, a change of the image is limited to a small section of the screen (e.g. moving the mouse pointer, pulling down a menu, highlighting an object) and only the changed data needs to be refreshed. The controller system can use the screen data previously received and just refresh the modified part of the screen. By cutting out redundant screen refresh data, a remote control program can improve the response time. Cache memories speed the performance of hard drives and memory chips, and can also be useful for remote control programs. The idea behind a cache is to keep recently used data in a temporary storage area that is quickly accessible. If the data are soon needed again, it is much quicker to access them from a fast-access temporary storage area than to retrieve from the original source. According to this technique, elements of a recently displayed screen are saved as a cache in extended memory. The entire page redraws from the controller PC screen cache, eliminating the need to transfer large amounts of information over the modem from the target to the controller PC. Screen elements that are often redrawn from a screen cache include bit maps, text and fonts.
An example of a prior art remote control system is Tivoli Remote Control V3.6.1 produced by International Business Machines Corporation.
In the transmission of a bit-map image, one of the heaviest information to send is the color of each pixel. In the well known RGB format, the color of each pixel is represented by three octets (i.e. three bytes having 8 bits each), one for the Red, one for the Green and one for the Blue. The maximum possible number of different colors is 16,777,216, i.e. 224. This representation with all the possible colors is called xe2x80x9ctrue colorxe2x80x9d.
In remote control systems (as in many other circumstances) this detailed color representation is not always needed and the transmission of all this information frequently constitutes an unwanted burden. Usually for the scope of the controller system, a poorer color image would be enough. For this reason, many remote control systems use color reduction algorithms to reduce the color representation from 24 (or 16) bits to 8 bits or even 4 bits. An example of a function implementing these algorithms is the Microsoft Windows API called GetDIBits which is implemented on all the Microsoft Windows versions produced by Microsoft Corporation. A drawback of prior art color reduction functions is that they require a relatively long computation time to perform this color reduction, mostly due to the effort of creating a reduced image as close as possible to the original one. In remote control system, where these operations must be performed very often at a very high speed, the color reduction delay is unacceptable.
Accordingly the present invention provides a method for colour reduction in a computer system having a three colour model for colour representation of a pixel, each colour being represented by a multiple bit pattern, said method reducing the colour to a four bit value by the steps of analysing the first bit of each of said three multiple bit patterns to determine tone; assigning a value to the first bit of said four bit value, based on said determined tone; and assigning the remaining three bits of said four bit value by utilising one pre-determined bit from each of said three multiple bit patterns.
In a preferred embodiment of the present invention the first bit has the value 1 if the tone of the colour is determined to be bright and the value 0 if the tone of the colour is determined to be dark. The bright tone occurs when at least one of said first bits of each of the three multiple bit patterns has the value 1, and the dark tone occurs when all of said first bits of each of the three multiple bit patterns has the value 0. For the bright tone, the values of the first bit of each of the three multiple bit patterns are assigned to the remaining three bits of the four bit value, whilst for the dark tone, the values of the second bit of each of the three multiple bit patterns are assigned to the remaining three bits of the four bit value.
In a preferred embodiment of the present invention, the three colour model is the RGB colour model. The values of the pre-determined bits from each of the three multiple bit patterns are then assigned to the remaining three bits of the four bit value in the order of the red bit pattern, green bit pattern and blue bit pattern. Typically each colour multiple bit pattern comprises an octet (ie 8 bits). bit patterns are then assigned to the remaining three bits of the four bit value in the order of the red bit pattern, green bit pattern and blue bit pattern. Typically each colour bit pattern comprises an octet (ie 8 bits).
In an alternative embodiment of the present invention, the value of each bit can be represented as a mirror image of that described above. For example, the brightest tone may be represented by an initial bit of 0 rather than 1. Note that one advantage of using the preferred scheme of the present invention is that the standard palette table for the VGA graphical system, comprising 16 colour entries, can then be used directly to determine the colour represented by the four bit value.
The present invention finds particular utility in a remote control environment comprising two or more data processing systems in communication with each other. A first data processing system can remotely control a second data processing system and colour reduction is performed prior to transmitting colour image data from the second data processing system to the first data processing system. This process then saves significant bandwidth in communications between the second and first systems.
The present invention further provides a system having a three colour model for colour representation of a pixel, each colour being represented by a multiple bit pattern, said system including means for reducing the colour from the three multiple bit pattern representation to a four bit value comprising means for analysing the first bit of each of said three multiple bit patterns to determine tone; means for assigning a value to the first bit of said four bit value, based on said determined tone; and means for assigning the remaining three bits of said four bit value by utilising one pre-determined bit from each of said three multiple bit patterns.